From e113902892a0d09992ed92e07bdc562cf9157997 Mon Sep 17 00:00:00 2001 From: robertl Date: Tue, 12 Aug 2008 04:11:38 +0000 Subject: [PATCH] Add a variant of xml_init that accepts a file offset... --- xmlgeneric.c | 18 +++++++++++++++++- xmlgeneric.h | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/xmlgeneric.c b/xmlgeneric.c index d83faceb2..1b4c34502 100644 --- a/xmlgeneric.c +++ b/xmlgeneric.c @@ -304,10 +304,14 @@ void xml_ignore_tags(const char **taglist) } void -xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding) +xml_init0(const char *fname, xg_tag_mapping *tbl, const char *encoding, + off_t offset ) { if (fname) { ifd = gbfopen(fname, "r", MYNAME); + if (offset) { + gbfseek(ifd, offset, SEEK_SET); + } } else { ifd = NULL; } @@ -330,6 +334,18 @@ xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding) XML_SetCharacterDataHandler(psr, xml_cdata); } +/* xml_init0 iwth a default seek argument of zero */ +void +xml_init(const char *fname, xg_tag_mapping *tbl, const char *encoding) { + xml_init0(fname, tbl, encoding, 0); +} + +void +xml_init_offset(const char *fname, xg_tag_mapping *tbl, const char *encoding, + off_t off) { + xml_init0(fname, tbl, encoding, off); +} + void xml_deinit(void) { diff --git a/xmlgeneric.h b/xmlgeneric.h index 0ce0834b9..bacdc1ef0 100644 --- a/xmlgeneric.h +++ b/xmlgeneric.h @@ -57,6 +57,8 @@ void write_xml_header(gbfile *ofd); void xml_ignore_tags(const char **taglist); void xml_init(const char *fname, xg_tag_mapping *tbl,const char *encoding); +void xml_init_offset(const char *fname, xg_tag_mapping *tbl, + const char *encoding, off_t offset); void xml_read(void); void xml_readstring(char *str); void xml_readprefixstring(char *str); -- 2.30.2